package com.yanqu.road.entity.activity.cat.data;

import com.yanqu.road.entity.DataObject;
import com.yanqu.road.entity.FieldTypeAnnotation;
import com.yanqu.road.entity.activity.cat.Element;
import com.yanqu.road.entity.activity.cat.GameData;

import java.util.Map;

@FieldTypeAnnotation(tableName = "t_u_activity_cat_user_data", desc = "怪化猫")
public class CatUserData extends DataObject {

    @FieldTypeAnnotation(desc = "活动ID", select = true, update = true)
    private int activityId;

    @FieldTypeAnnotation(desc = "用户ID", select = true, update = true)
    private long userId;

    @FieldTypeAnnotation(desc = "积分")
    private int score;

    @FieldTypeAnnotation(desc = "体力")
    private int energy;

    @FieldTypeAnnotation(desc = "上次恢复时间")
    private long lastRecTime;

    @FieldTypeAnnotation(desc = "攻击力等级")
    private int abilityLv;

    @FieldTypeAnnotation(desc = "攻击力/基础伤害")
    private int ability;

    @FieldTypeAnnotation(desc = "最高伤害（单个关卡）")
    private long damage;

    @FieldTypeAnnotation(desc = "关卡星数")
    Map<Integer, Integer> passStarMap;

    @FieldTypeAnnotation(desc = "游戏状态")
    private GameData gameData;

    @FieldTypeAnnotation(desc = "格子数据")
    private Element[][] cellData;

    @FieldTypeAnnotation(desc = "累计使用体力")
    private int useEnergy;

    @FieldTypeAnnotation(desc = "累计游戏场次")
    private int gameTimes;

    @FieldTypeAnnotation(desc = "历史最高关卡-默认0")
    private int historyPassId;


    //@FieldTypeAnnotation(desc = "游戏状态(练习模式)")
    private GameData tempData;

    //@FieldTypeAnnotation(desc = "格子数据(练习模式)")
    private Element[][] tempCellData;


    public int getActivityId() {
        return activityId;
    }

    public void setActivityId(int activityId) {
        if(this.activityId != activityId) {
            this.activityId = activityId;
            setUpdateOption();
        }
    }

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        if(this.userId != userId) {
            this.userId = userId;
            setUpdateOption();
        }
    }

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        if(this.score != score) {
            this.score = score;
            setUpdateOption();
        }
    }

    public int getEnergy() {
        return energy;
    }

    public void setEnergy(int energy) {
        if(this.energy != energy) {
            this.energy = energy;
            setUpdateOption();
        }
    }

    public long getLastRecTime() {
        return lastRecTime;
    }

    public void setLastRecTime(long lastRecTime) {
        if(this.lastRecTime != lastRecTime) {
            this.lastRecTime = lastRecTime;
            setUpdateOption();
        }
    }

    public Map<Integer, Integer> getPassStarMap() {
        return passStarMap;
    }

    public void setPassStarMap(Map<Integer, Integer> passStarMap) {
        this.passStarMap = passStarMap;
        setUpdateOption();
    }

    public int getAbilityLv() {
        return abilityLv;
    }

    public void setAbilityLv(int abilityLv) {
        if(this.abilityLv != abilityLv) {
            this.abilityLv = abilityLv;
            setUpdateOption();
        }
    }

    public int getAbility() {
        return ability;
    }

    public void setAbility(int ability) {
        if(this.ability != ability) {
            this.ability = ability;
            setUpdateOption();
        }
    }

    public long getDamage() {
        return damage;
    }

    public void setDamage(long damage) {
        if(this.damage != damage) {
            this.damage = damage;
            setUpdateOption();
        }
    }

    public GameData getGameData() {
        return gameData;
    }

    public void setGameData(GameData gameData) {
        this.gameData = gameData;
        setUpdateOption();
    }

    public Element[][] getCellData() {
        return cellData;
    }

    public void setCellData(Element[][] cellData) {
        this.cellData = cellData;
        setUpdateOption();
    }

    public int getUseEnergy() {
        return useEnergy;
    }

    public void setUseEnergy(int useEnergy) {
        if(this.useEnergy != useEnergy) {
            this.useEnergy = useEnergy;
            setUpdateOption();
        }
    }

    public int getGameTimes() {
        return gameTimes;
    }

    public void setGameTimes(int gameTimes) {
        if(this.gameTimes != gameTimes) {
            this.gameTimes = gameTimes;
            setUpdateOption();
        }
    }




    public GameData getTempData() {
        return tempData;
    }

    public void setTempData(GameData tempData) {
        this.tempData = tempData;
    }

    public Element[][] getTempCellData() {
        return tempCellData;
    }

    public void setTempCellData(Element[][] tempCellData) {
        this.tempCellData = tempCellData;
    }

    public int getHistoryPassId() {
        return historyPassId;
    }

    public void setHistoryPassId(int historyPassId) {
        if(this.historyPassId != historyPassId) {
            this.historyPassId = historyPassId;
            setUpdateOption();
        }
    }
}
